package com.founder.chd_daily_query.entity.query;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;

import javax.persistence.*;
import java.util.Date;
import java.util.Objects;

@Entity
@Table(name = "WATER_COAL_TRANSSHIPMENT", schema = "RBD_RESULT", catalog = "")
public class WaterCoalTransshipmentEntity {
    private String onloadPlanDetailId;
    private Long serialNumber;
    private String shipMark;
    private String departPortId;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd")
    private Date dropAnchorDate;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd")
    private Date berthDate;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd")
    private Date departureDate;
    private Long acturalLoadQuantity;
    private String qnet;
    private Long monthlyRateRedemption;
    private String transferPortId;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd")
    private Date dropAnchorDateZ;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd")
    private Date departureDateZ;
    private Long numberDirectBarges;
    private Long numberLandings;
    private Long arrivePortQuantity;
    private String transitQnet;
    private Long quantityPoor;
    private String qualityPoor;
    private Long seaFreight;
    private Long seaDemurrageCharges;
    private Long transitCharges;
    private Long riverFreight;
    private Long inlandFreight;
    private Long steamShortbargeFreight;
    private Long totalCharges;
    private Long naturalCoalUnitprice;
    private Long standardCoalUnitprice;
    private Long transshipmentUnitprice;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd")
    private Date createDate;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd")
    private Date lastUpdateDate;
    private String purchaseSalePreceptId;
    private String supplyProvinceId;
    private String powerstationId;

    @Id
    @Column(name = "ONLOAD_PLAN_DETAIL_ID")
    public String getOnloadPlanDetailId() {
        return onloadPlanDetailId;
    }

    public void setOnloadPlanDetailId(String onloadPlanDetailId) {
        this.onloadPlanDetailId = onloadPlanDetailId;
    }

    @Basic
    @Column(name = "SERIAL_NUMBER")
    public Long getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(Long serialNumber) {
        this.serialNumber = serialNumber;
    }

    @Basic
    @Column(name = "SHIP_MARK")
    public String getShipMark() {
        return shipMark;
    }

    public void setShipMark(String shipMark) {
        this.shipMark = shipMark;
    }

    @Basic
    @Column(name = "DEPART_PORT_ID")
    public String getDepartPortId() {
        return departPortId;
    }

    public void setDepartPortId(String departPortId) {
        this.departPortId = departPortId;
    }

    @Basic
    @Column(name = "DROP_ANCHOR_DATE")
    public Date getDropAnchorDate() {
        return dropAnchorDate;
    }

    public void setDropAnchorDate(Date dropAnchorDate) {
        this.dropAnchorDate = dropAnchorDate;
    }

    @Basic
    @Column(name = "BERTH_DATE")
    public Date getBerthDate() {
        return berthDate;
    }

    public void setBerthDate(Date berthDate) {
        this.berthDate = berthDate;
    }

    @Basic
    @Column(name = "DEPARTURE_DATE")
    public Date getDepartureDate() {
        return departureDate;
    }

    public void setDepartureDate(Date departureDate) {
        this.departureDate = departureDate;
    }

    @Basic
    @Column(name = "ACTURAL_LOAD_QUANTITY")
    public Long getActuralLoadQuantity() {
        return acturalLoadQuantity;
    }

    public void setActuralLoadQuantity(Long acturalLoadQuantity) {
        this.acturalLoadQuantity = acturalLoadQuantity;
    }

    @Basic
    @Column(name = "QNET")
    public String getQnet() {
        return qnet;
    }

    public void setQnet(String qnet) {
        this.qnet = qnet;
    }

    @Basic
    @Column(name = "MONTHLY_RATE_REDEMPTION")
    public Long getMonthlyRateRedemption() {
        return monthlyRateRedemption;
    }

    public void setMonthlyRateRedemption(Long monthlyRateRedemption) {
        this.monthlyRateRedemption = monthlyRateRedemption;
    }

    @Basic
    @Column(name = "TRANSFER_PORT_ID")
    public String getTransferPortId() {
        return transferPortId;
    }

    public void setTransferPortId(String transferPortId) {
        this.transferPortId = transferPortId;
    }

    @Basic
    @Column(name = "DROP_ANCHOR_DATE_Z")
    public Date getDropAnchorDateZ() {
        return dropAnchorDateZ;
    }

    public void setDropAnchorDateZ(Date dropAnchorDateZ) {
        this.dropAnchorDateZ = dropAnchorDateZ;
    }

    @Basic
    @Column(name = "DEPARTURE_DATE_Z")
    public Date getDepartureDateZ() {
        return departureDateZ;
    }

    public void setDepartureDateZ(Date departureDateZ) {
        this.departureDateZ = departureDateZ;
    }

    @Basic
    @Column(name = "NUMBER_DIRECT_BARGES")
    public Long getNumberDirectBarges() {
        return numberDirectBarges;
    }

    public void setNumberDirectBarges(Long numberDirectBarges) {
        this.numberDirectBarges = numberDirectBarges;
    }

    @Basic
    @Column(name = "NUMBER_LANDINGS")
    public Long getNumberLandings() {
        return numberLandings;
    }

    public void setNumberLandings(Long numberLandings) {
        this.numberLandings = numberLandings;
    }

    @Basic
    @Column(name = "ARRIVE_PORT_QUANTITY")
    public Long getArrivePortQuantity() {
        return arrivePortQuantity;
    }

    public void setArrivePortQuantity(Long arrivePortQuantity) {
        this.arrivePortQuantity = arrivePortQuantity;
    }

    @Basic
    @Column(name = "TRANSIT_QNET")
    public String getTransitQnet() {
        return transitQnet;
    }

    public void setTransitQnet(String transitQnet) {
        this.transitQnet = transitQnet;
    }

    @Basic
    @Column(name = "QUANTITY_POOR")
    public Long getQuantityPoor() {
        return quantityPoor;
    }

    public void setQuantityPoor(Long quantityPoor) {
        this.quantityPoor = quantityPoor;
    }

    @Basic
    @Column(name = "QUALITY_POOR")
    public String getQualityPoor() {
        return qualityPoor;
    }

    public void setQualityPoor(String qualityPoor) {
        this.qualityPoor = qualityPoor;
    }

    @Basic
    @Column(name = "SEA_FREIGHT")
    public Long getSeaFreight() {
        return seaFreight;
    }

    public void setSeaFreight(Long seaFreight) {
        this.seaFreight = seaFreight;
    }

    @Basic
    @Column(name = "SEA_DEMURRAGE_CHARGES")
    public Long getSeaDemurrageCharges() {
        return seaDemurrageCharges;
    }

    public void setSeaDemurrageCharges(Long seaDemurrageCharges) {
        this.seaDemurrageCharges = seaDemurrageCharges;
    }

    @Basic
    @Column(name = "TRANSIT_CHARGES")
    public Long getTransitCharges() {
        return transitCharges;
    }

    public void setTransitCharges(Long transitCharges) {
        this.transitCharges = transitCharges;
    }

    @Basic
    @Column(name = "RIVER_FREIGHT")
    public Long getRiverFreight() {
        return riverFreight;
    }

    public void setRiverFreight(Long riverFreight) {
        this.riverFreight = riverFreight;
    }

    @Basic
    @Column(name = "INLAND_FREIGHT")
    public Long getInlandFreight() {
        return inlandFreight;
    }

    public void setInlandFreight(Long inlandFreight) {
        this.inlandFreight = inlandFreight;
    }

    @Basic
    @Column(name = "STEAM_SHORTBARGE_FREIGHT")
    public Long getSteamShortbargeFreight() {
        return steamShortbargeFreight;
    }

    public void setSteamShortbargeFreight(Long steamShortbargeFreight) {
        this.steamShortbargeFreight = steamShortbargeFreight;
    }

    @Basic
    @Column(name = "TOTAL_CHARGES")
    public Long getTotalCharges() {
        return totalCharges;
    }

    public void setTotalCharges(Long totalCharges) {
        this.totalCharges = totalCharges;
    }

    @Basic
    @Column(name = "NATURAL_COAL_UNITPRICE")
    public Long getNaturalCoalUnitprice() {
        return naturalCoalUnitprice;
    }

    public void setNaturalCoalUnitprice(Long naturalCoalUnitprice) {
        this.naturalCoalUnitprice = naturalCoalUnitprice;
    }

    @Basic
    @Column(name = "STANDARD_COAL_UNITPRICE")
    public Long getStandardCoalUnitprice() {
        return standardCoalUnitprice;
    }

    public void setStandardCoalUnitprice(Long standardCoalUnitprice) {
        this.standardCoalUnitprice = standardCoalUnitprice;
    }

    @Basic
    @Column(name = "TRANSSHIPMENT_UNITPRICE")
    public Long getTransshipmentUnitprice() {
        return transshipmentUnitprice;
    }

    public void setTransshipmentUnitprice(Long transshipmentUnitprice) {
        this.transshipmentUnitprice = transshipmentUnitprice;
    }

    @Basic
    @Column(name = "CREATE_DATE")
    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    @Basic
    @Column(name = "LAST_UPDATE_DATE")
    public Date getLastUpdateDate() {
        return lastUpdateDate;
    }

    public void setLastUpdateDate(Date lastUpdateDate) {
        this.lastUpdateDate = lastUpdateDate;
    }

    @Basic
    @Column(name = "PURCHASE_SALE_PRECEPT_ID")
    public String getPurchaseSalePreceptId() {
        return purchaseSalePreceptId;
    }

    public void setPurchaseSalePreceptId(String purchaseSalePreceptId) {
        this.purchaseSalePreceptId = purchaseSalePreceptId;
    }

    @Basic
    @Column(name = "SUPPLY_PROVINCE_ID")
    public String getSupplyProvinceId() {
        return supplyProvinceId;
    }

    public void setSupplyProvinceId(String supplyProvinceId) {
        this.supplyProvinceId = supplyProvinceId;
    }

    @Basic
    @Column(name = "POWERSTATION_ID")
    public String getPowerstationId() {
        return powerstationId;
    }

    public void setPowerstationId(String powerstationId) {
        this.powerstationId = powerstationId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        WaterCoalTransshipmentEntity that = (WaterCoalTransshipmentEntity) o;
        return Objects.equals(onloadPlanDetailId, that.onloadPlanDetailId) &&
                Objects.equals(serialNumber, that.serialNumber) &&
                Objects.equals(shipMark, that.shipMark) &&
                Objects.equals(departPortId, that.departPortId) &&
                Objects.equals(dropAnchorDate, that.dropAnchorDate) &&
                Objects.equals(berthDate, that.berthDate) &&
                Objects.equals(departureDate, that.departureDate) &&
                Objects.equals(acturalLoadQuantity, that.acturalLoadQuantity) &&
                Objects.equals(qnet, that.qnet) &&
                Objects.equals(monthlyRateRedemption, that.monthlyRateRedemption) &&
                Objects.equals(transferPortId, that.transferPortId) &&
                Objects.equals(dropAnchorDateZ, that.dropAnchorDateZ) &&
                Objects.equals(departureDateZ, that.departureDateZ) &&
                Objects.equals(numberDirectBarges, that.numberDirectBarges) &&
                Objects.equals(numberLandings, that.numberLandings) &&
                Objects.equals(arrivePortQuantity, that.arrivePortQuantity) &&
                Objects.equals(transitQnet, that.transitQnet) &&
                Objects.equals(quantityPoor, that.quantityPoor) &&
                Objects.equals(qualityPoor, that.qualityPoor) &&
                Objects.equals(seaFreight, that.seaFreight) &&
                Objects.equals(seaDemurrageCharges, that.seaDemurrageCharges) &&
                Objects.equals(transitCharges, that.transitCharges) &&
                Objects.equals(riverFreight, that.riverFreight) &&
                Objects.equals(inlandFreight, that.inlandFreight) &&
                Objects.equals(steamShortbargeFreight, that.steamShortbargeFreight) &&
                Objects.equals(totalCharges, that.totalCharges) &&
                Objects.equals(naturalCoalUnitprice, that.naturalCoalUnitprice) &&
                Objects.equals(standardCoalUnitprice, that.standardCoalUnitprice) &&
                Objects.equals(transshipmentUnitprice, that.transshipmentUnitprice) &&
                Objects.equals(createDate, that.createDate) &&
                Objects.equals(lastUpdateDate, that.lastUpdateDate) &&
                Objects.equals(purchaseSalePreceptId, that.purchaseSalePreceptId) &&
                Objects.equals(supplyProvinceId, that.supplyProvinceId) &&
                Objects.equals(powerstationId, that.powerstationId);
    }

    @Override
    public int hashCode() {

        return Objects.hash(onloadPlanDetailId, serialNumber, shipMark, departPortId, dropAnchorDate, berthDate, departureDate, acturalLoadQuantity, qnet, monthlyRateRedemption, transferPortId, dropAnchorDateZ, departureDateZ, numberDirectBarges, numberLandings, arrivePortQuantity, transitQnet, quantityPoor, qualityPoor, seaFreight, seaDemurrageCharges, transitCharges, riverFreight, inlandFreight, steamShortbargeFreight, totalCharges, naturalCoalUnitprice, standardCoalUnitprice, transshipmentUnitprice, createDate, lastUpdateDate, purchaseSalePreceptId, supplyProvinceId, powerstationId);
    }
}
